Programming by demonstration using version space algebra DRAFT to appear in Machine Learning
نویسندگان
چکیده
Programming by demonstration enables users to easily personalize their applications, automating repetitive tasks simply by executing a few examples. We formalize programming by demonstration as a machine learning problem: given the changes in the application state that result from the user’s demonstrated actions, learn the general program that maps from one application state to the next. We present a methodology for learning in this space of complex functions. First we extend version spaces to learn arbitrary functions, not just concepts. Then we introduce the version space algebra, a method for composing simpler version spaces to construct more complex spaces. Finally, we apply our version space algebra to the text-editing domain and describe an implemented system called SMARTedit that learns repetitive text-editing procedures by example. We evaluate our approach by measuring the number of examples required for the system to learn a procedure that works on the remainder of examples, and by an informal user study measuring the effort users spend using our system versus performing the task by hand. The results show that SMARTedit is capable of generalizing correctly from as few as one or two examples, and that users generally save a significant amount of effort when completing tasks with SMARTedit’s help.
منابع مشابه
Version Space Algebra and its Application to Programming by Demonstration
Machine learning research has been very successful at producing powerful, broadlyapplicable classification learners. However, many practical learning problems do not fit the classification framework well, and as a result the initial phase of suitably formulating the problem and incorporating the relevant domain knowledge can be very difficult and typically consumes the majority of the project t...
متن کاملProgramming shell scripts by demonstration
Command-line interfaces are heavily used by system administrators to manage computer systems. Tasks performed at a command line may often be repetitive, leading to a desire for automation. However, the critical nature of system administration suggests that humans also need to supervise an automated system’s behavior. This paper presents a programming by demonstration approach to capturing repet...
متن کاملLearning How to Edit Text
Programming by demonstration systems acquire procedural knowledge from examples, and then use that knowledge to execute the learned procedure on new instances. We present an architecture, called version space algebra, for learning this type of procedural knowledge, and describe an implemented system for programming by demonstration in the text-editing domain. We present results showing the syst...
متن کاملProgramming Shell Scripts by Demonstration
Command-line interfaces are heavily used by system administrators to manage computer systems. Tasks performed at a command line may often be repetitive, leading to a desire for automation. However, the critical nature of system administration suggests that humans also need to supervise an automated system’s behavior. This paper presents a programming by demonstration approach to capturing repet...
متن کاملDeTEXT: Programming by Example
Data cleaning and manipulation is an expensive and tedious process that consumes valuable time and resources. If an end-user needs to manipulate a large amount of data, he has three primary options: record a macro, write a transformation program, or perform manual manipulations on the data. Recording a macro with a fixed series of actions can be simple, but does not generalize well and is not s...
متن کامل